﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Text;
using System.Threading.Tasks;
using ParkingApp.ParkingSlot.Simulator.Lib;

namespace ParkingApp.Lib
{
    [ServiceContract]
    public interface IParking
    {
        [OperationContract()]
        void MakeSlotUnavailable(Slot parkingSlot, Slot.NotAvailableReason notAvailableReason, string plateNumber);
        [OperationContract()]
        TicketDetail ReAllocateParkingSlot(TicketDetail ticket);
        [OperationContract()]
        TicketDetail AllocateParkingSlot(Slot parkingSlot, string plateNumber);
        [OperationContract()]
        Slot GetAvailableSlot();
    }
}
